A storage system with an array of active storage devices contains both hard disk drives (HDDs) and active storage units. Ideally, data reconstruction of data in a failed data storage device in a data storage system occurs as offline reconstruction in which the storage system stops replying to any client/application server in order to allow the data reconstruction process to run at full speed. However, this scenario is not practical in most production environments as most storage systems are required to provide uninterrupted data services even when they are recovering from disk failures.
An erasure code protects data when there is a device failure in a system. Using an erasure code to improve system reliability is more economical than using data replications. The erasure code implemented can protect failure from both HDDs and active storage units including active controller boards (ACBs) and HDDs. On the other hand, replication requires a much higher amount of redundant data, as large as or multiple times larger than the original data. However, replication has a much shorter recovery equation, meaning that it has higher recovery efficiency upon disk failures.
Thus, what is needed is a method and device for data stripping, parity computation, data allocation and data reconstruction within a storage system with an array of active storage devices which at least partially overcomes the drawbacks of present approaches and provides improved data access performance and shortened failure reconstruction time. Furthermore, other desirable features and characteristics will become apparent from the subsequent detailed description and the appended claims, taken in conjunction with the accompanying drawings and this background of the disclosure.